package com.hirsi.common.db.log.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 登录日志表
 * </p>
 *
 * @author 封夕
 * @since 2023-10-24
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("ztk_log_login")
public class LogLogin extends Model<LogLogin> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 登录账号
     */
    @TableField("account")
    private String account;

    /**
     * 登录用户id
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 服务id：0-管理端，1-开发者端，2-开发者C端，3-客户端
     */
    @TableField("application_id")
    private Integer applicationId;

    /**
     * 设备
     */
    @TableField("device")
    private String device;

    /**
     * 操作系统
     */
    @TableField("os")
    private String os;

    /**
     * 浏览器
     */
    @TableField("browser")
    private String browser;

    /**
     * 平台：对应枚举
     */
    @TableField("platform")
    private Integer platform;

    /**
     * 登录时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 登录方式：0-账号密码登录，1-手机短信验证码登录，2-微信登录
     */
    @TableField("type")
    private Integer type;

    /**
     * 客户端ip
     */
    @TableField("ip")
    private String ip;

    /**
     * 状态：0-登录失败，1-成功
     */
    @TableField("status")
    private Boolean status;

    /**
     * 登录失败的错误信息
     */
    @TableField("error_msg")
    private String errorMsg;

    /**
     * 租户编码
     */
    @TableField("tenant_code")
    private String tenantCode;

    @Override
    public Serializable pkVal() {
        return this.id;
    }
}
